#pragma once
#include <windows.h>
class Skeleton;
class Role
{
public:
	enum STATE
	{
		move,
		turn,
		hold
	};
public:

	static const float PI;//3.141592653;

	Role(void);
	Role(LPCSTR xFileName);
	virtual ~Role(void);

	void Rend();

	void moveForward(float d);
	void moveBack(float d);
	void moveLeft(float d);
	void moveRight(float d);
	void moveUp(float d);
	void moveDown(float d);

	void turnLeft(float a);
	void turnRight(float a);
	void turnUp(float a);
	void turnDown(float a);
	void turnLeftZ(float a);
	void turnRightZ(float a);

	float getX(){return m_x;}
	float getY(){return m_y;}
	float getZ(){return m_z;}

	float getRX() {return m_rx ;}
	float getRY() {return m_ry ;}
	float getRZ() {return m_rz ;}

	float getX() const {return m_x;}
	float getY() const {return m_y;}
	float getZ() const {return m_z;}

	float getRX() const {return m_rx ; }
	float getRY() const {return m_ry ; }
	float getRZ() const {return m_rz ; }

	LPCSTR getXFileName (){ return m_XFileName; }
	void setModel(Skeleton * pSkeleton);
	void setState(Role::STATE state )
	{
		m_State = state;
	}

private:
	float m_x;
	float m_y;
	float m_z;

	float m_rx;
	float m_ry;
	float m_rz;

	
	STATE m_State;

	LPCSTR m_XFileName;
	Skeleton * m_Model;
};
